package cn.lingyangwl.agile.auth.model.rqrs.third;

import cn.lingyangwl.agile.auth.oauth2.model.RegisteredClient;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

/**
 * 第三方登录数据
 * @author shenguangyang
 */
@Getter
@Setter
public class ThirdLoginReq {
    /**
     * 是否后端进行重定向
     */
    @JsonIgnore
    private Boolean isRedirect;

    /**
     * 客户端
     */
    @JsonIgnore
    private RegisteredClient client;

    /**
     * 访问AuthorizeUrl后回调时带的参数code
     */
    @JsonAlias(value = "code")
    private String code;

    /**
     * 访问AuthorizeUrl后回调时带的参数state，用于和请求AuthorizeUrl前的state比较，防止CSRF攻击
     */
    @JsonAlias(value = "state")
    private String state;

    /**
     * 回到的前端页面地址
     */
    protected String backUrl;

    /**
     * 支付宝: 访问AuthorizeUrl后回调时带的参数auth_code，该参数目前只使用于支付宝登录
     */
    @JsonAlias(value = "auth_code")
    private String authCode;

    /**
     * 华为: 华为授权登录接受code的参数名
     */
    @JsonAlias(value = "authorization_code")
    private String authorizationCode;

    /**
     * Twitter: 回调后返回的oauth_token
     */
    @JsonAlias(value = "oauth_token")
    private String oauthToken;

    /**
     * Twitter: 回调后返回的oauth_verifier
     */
    @JsonAlias(value = "oauth_verifier")
    private String oauthVerifier;
}
